#ifndef INDUSTRYCAMERA_H
#define INDUSTRYCAMERA_H

#include <QObject>
#include <QSize>
#include <QString>


class IndustryCameraInfo
{
public:
    virtual QString description()  = 0;//
    virtual QString deviceName() = 0;//
    virtual bool isNull() = 0;
    //virtual static QList<IndustryCameraInfo> availableCameras();//
    //virtual static IndustryCameraInfo defaultCamera();//
};

/// 工业相机的接口
class IndustryCamera : public QObject
{
    Q_OBJECT
public:
    explicit IndustryCamera(QObject *parent = 0);

signals:
    void Mono8ImageChanged(const uint8_t *pBuf, QSize size);
    void RGB24ImageChanged(const uint8_t *pBuf, QSize size);
    void RGB32ImageChanged(const uint8_t *pBuf, QSize size);
    void Bayer8ImageChanged(const uint8_t *pBuf, QSize size);
    void deviceLost();

public slots:
    virtual void saveSettingsToFile(QString fileName) = 0;
    virtual void loadSettingsFromFile(QString fileName) = 0;
    virtual bool showVCDPropertyPage() = 0;
    virtual void close() = 0;
};

#endif // INDUSTRYCAMERA_H
